1. Field of the Invention
The present invention relates to the field of application installation and un-installation in a file system, and more particularly to file identification in an un-installation process.
2. Description of the Related Art
Though often overlooked, application installation is a prerequisite to interacting with a software application. Specifically, in most circumstances, an application can be properly executed only subsequent to the completion of a successful installation process. At the minimum, a typical software application installation requires a transfer of files to the file structure of a computing system, and the configuration of the computing system to particularly interact with the software application. Ordinarily, the configuration of the computing system includes the addition or modification of registry settings, the addition or modification of entries to one or more initialization files, or both.
In contrast to the process of installing an application, uninstalling an application, in an era of complex software applications, requires an equally as sophisticated un-installation process. In that regard, while it can be a simple enough task simply to delete those files from the computing system which are associated with the uninstalled application, in many cases, the files which are to be deleted are requisite to the operation of other applications which are not to be deleted—namely application libraries and such. Also, to the extent that the computing system had been configured for operation with the deleted application, the configuration data ought to be removed from the computing system. Typically, the complete removal of configuration data in the course of an un-installation process will require further editing of the system registry, one or more system initialization files, or both.
For many years, the number of applications and corresponding files installed in a computing device had been limited by available storage capacity. With the advent of windowing operating environment in which the operating system itself consumed vast quantities of disk space, even fewer applications could be installed in a computing device. As such, managing the removal of files from any particular file system could be as simple as readily identifying unnecessary files and deleting them. Notwithstanding, as the storage capacity of personal computing devices has grown, limitations on the number and size of installed applications have evaporated. Today, it is nearly impossible to account for the presence of a given file in a file system.
Specifically, the file system of the modern computing platform can accommodate an enormous quantity of files. As many files can be associated with multiple different installed applications through a shared code base, it can be nearly impossible to determine when a file can be safely removed without giving rise to an unexpected and unintended application failure. Modern operating systems account for the potential consequence of deleting a file relied upon by an application by posting a warning to the end user when the end user indicates the intent to delete a file from the file system that appears to “belong” to an installed application. The warning itself, however, is no more effective than maintaining a common knowledge that an application may rely upon a file destined for deletion.
Conventional installation and un-installation technologies address the file removal problem by tracking the association between different files and an installed application. However, those technologies track files and file associations only through the operation of an installation program during installation of the application and only in the course of removing files through the operation of the installation program during the un-installation of the application. Oftentimes, though, end users prefer the ad hoc removal of a file externally to the use of an installation program.